/**
 * 部门管理相关API
 */
import { post, get } from '@/utils/request'

export const departmentApi = {
  /**
   * 获取部门树形结构
   * @returns {Promise} 部门树数据
   */
  getDepartmentTree() {
    return post('api/department/index')
  },

  /**
   * 新增部门
   * @param {Object} data - 部门数据
   * @returns {Promise} 创建结果
   */
  createDepartment(data) {
    return post('api/department/add', data)
  },

  /**
   * 更新部门
   * @param {Object} data - 部门数据（包含id）
   * @returns {Promise} 更新结果
   */
  updateDepartment(data) {
    return post('api/department/edit', data)
  },

  /**
   * 删除部门
   * @param {string} id - 部门ID
   * @returns {Promise} 删除结果
   */
  deleteDepartment(id) {
    return post('api/department/delete', { id })
  },

  /**
   * 获取指定部门下的员工列表
   * @param {Object} searchData - 搜索条件（POST）
   * @param {number} page - 页码（GET参数）
   * @returns {Promise} 员工列表数据
   */
  getStaffList(searchData, page) {
    return post(`api/Employee/index?p=${page || 1}`, searchData)
  },

  /**
   * 新增员工
   * @param {Object} data - 员工数据
   * @returns {Promise} 创建结果
   */
  createStaff(data) {
    return post('api/Employee/add', data)
  },

  /**
   * 更新员工
   * @param {Object} data - 员工数据（包含id）
   * @returns {Promise} 更新结果
   */
  updateStaff(data) {
    return post('api/Employee/edit', data)
  },

  /**
   * 删除员工
   * @param {string} id - 员工ID
   * @returns {Promise} 删除结果
   */
  deleteStaff(id) {
    return post('api/Employee/delete', { id })
  },

  /**
   * 重置员工密码
   * @param {string} id - 员工ID
   * @returns {Promise} 重置结果
   */
  resetStaffPassword(id) {
    return post('api/Employee/reset_pass', { id })
  },

  /**
   * 切换用户
   * @param {string} id - 员工ID
   * @returns {Promise} 切换结果
   */
  switchUser(id) {
    return post('api/common/alterUser', { id })
  },

  /**
   * 获取设置负责人列表
   * @param {string} id - 员工ID
   * @returns {Promise} 切换结果
   */
  get_sub_department_employee(did) {
    return post('api/Common/get_sub_department_employee', { did })
  },

  /**
   * 获取员工详情
   * @param {Object} data - 员工ID
   * @returns {Promise} 员工详情
   */
  getStaffDetails(data) {
    return post('api/Employee/details', data)
  }

}
